package com.micro.train.service;

import com.micro.train.entity.TrainMeal;

import java.util.List;

/**
 * 火车餐服务接口
 */
public interface TrainMealService {
    
    /**
     * 添加餐品信息
     */
    TrainMeal addMeal(TrainMeal meal);
    
    /**
     * 更新餐品信息
     */
    TrainMeal updateMeal(Long mealId, TrainMeal meal);
    
    /**
     * 删除餐品信息
     */
    void deleteMeal(Long mealId);
    
    /**
     * 获取所有餐品信息
     */
    List<TrainMeal> getAllMeals();
    
    /**
     * 根据ID获取餐品信息
     */
    TrainMeal getMealById(Long mealId);
    
    /**
     * 根据列车ID获取餐品列表
     */
    List<TrainMeal> getMealsByTrainId(Long trainId);
    
    /**
     * 根据餐品种类查询
     */
    List<TrainMeal> getMealsByType(String mealType);
    
    /**
     * 根据列车ID和餐品种类查询
     */
    List<TrainMeal> getMealsByTrainIdAndType(Long trainId, String mealType);
    
    /**
     * 查询可用的餐品
     */
    List<TrainMeal> getAvailableMeals(Long trainId);
    
    /**
     * 更新餐品库存
     */
    boolean updateStock(Long mealId, Integer quantity);
}
